【Ansible】ansible コマンドで"Failed to connect to the host via ssh"が表示される



ansible コマンドを実行したところ以下のエラーが発生しました。(テストであるためローカルに接続しています。)


# ansible localhost -i inventory_local -m ping -o
(中略)
127.0.0.1 | UNREACHABLE!: Failed to connect to the host via ssh: Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
root@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).



エラーメッセージをよく見ると"Permission denied"という言葉があるのが分かります。
接続先のSSHサーバによる認証に失敗しています。パスワード認証、あるいは鍵認証による設定を行います。

すでに設定している場合には "--ask-pass" オプションにより ansibleコマンド実行時にパスワードを指定します。


# ansible localhost -i inventory_local -m ping -o --ask-pass



以下の例ではping ansible コマンドで同時にパスワードを入力しています。ping コマンドにより pong が戻り正常に動作していることが分かります。

# ansible localhost -i inventory_local -m ping -o --ask-pass
SSH password: ********
127.0.0.1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"}







Ansibleのよくある質問




個人的に独自に調査した事項をまとめています。各ベンダーとは全く関係がありません。
内容に誤りがある場合や情報が古くなっている場合があります。その場合でも修正されるとは限りません。
参考としてサイト閲覧ください。万が一誤りがあり損失等が発生しても保証しません。あくまでも自己責任でサイトを閲覧ください。